Active Acoustic Filter with Automatic Selection of Filter Parameters Based on Ambient Sound

ABSTRACT

Active acoustic filter systems and methods are disclosed. An active acoustic filter system includes a memory storing one or more stored sound profiles and a respective set of processing parameters associated with each of the one or more stored sound profiles. A processor coupled to the memory generates processed sound by processing ambient sound in accordance with a set of processing parameters retrieved from the memory based on results from comparing an ambient sound profile to at least one of the one or more stored sound profiles.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.15/382,408 filed Dec. 16, 2016, which is a continuation of U.S. patentapplication Ser. No. 14/819,298 filed Aug. 5, 2015, now U.S. Pat. No.9,557,960 issued Jan. 31, 2017, which is a continuation-in-part of U.S.patent application Ser. No. 14/681,843 filed Apr. 8, 2015, now U.S. Pat.No. 9,524,731 issued Dec. 20, 2016, which claims priority fromprovisional patent application 61/976,794 filed Apr. 8, 2014, all ofwhich are incorporated herein by reference.

NOTICE OF COPYRIGHTS AND TRADE DRESS

A portion of the disclosure of this patent document contains materialwhich is subject to copyright protection. This patent document may showand/or describe matter which is or may become trade dress of the owner.The copyright and trade dress owner has no objection to the facsimilereproduction by anyone of the patent disclosure as it appears in thePatent and Trademark Office patent files or records, but otherwisereserves all copyright and trade dress rights whatsoever.

BACKGROUND Field

This disclosure relates generally to digital active audio filters foruse in a listener's ear to modify ambient sound to suit the listeningpreferences of the listener. In particular, this disclosure relates toactive audio filters that adapt to the characteristics of the ambientsound.

Description of the Related Art

Humans' perception to sound varies with both frequency and soundpressure level (SPL). For example, humans do not perceive low and highfrequency sounds as well as they perceive midrange frequencies sounds(e.g., 500 Hz to 6,000 Hz). Further, human hearing is more responsive tosound at high frequencies compared to low frequencies.

There are many situations where a listener may desire attenuation ofambient sound at certain frequencies, while allowing ambient sound atother frequencies to reach their ears. For example, at a concert,concert goers might want to enjoy the music, but also be protected fromhigh levels of mid-range sound frequencies that cause damage to aperson's hearing. On an airplane, passengers might wish to block out theroar of the engine, but not conversation. At a sports event, fans mightdesire to hear the action of the game, but receive protection from theroar of the crowd. These are just a few common examples where peoplewish to hear some, but not all, of the sound frequencies in theirenvironment.

In addition to receiving protection from unpleasant or dangerously loudsound levels, listeners may wish to augment the ambient sound byamplification of certain frequencies, combining ambient sound with asecondary audio feed, equalization (modifying ambient sound by adjustingthe relative loudness of various frequencies), noise reduction, echocancellation, or addition of echo or reverberation. For example, at aconcert, audience members may wish to attenuate certain frequencies ofthe music, but amplify other frequencies (e.g., the bass). Peoplelistening to music at home may wish to have a more “concert-like”experience by adding reverberation to the ambient sound. At a sportsevent, fans may wish to attenuate ambient crowd noise, but also receivean audio feed of a sportscaster reporting on the event. Similarly,people at a mall may wish to attenuate the ambient noise, yet receive anaudio feed of advertisements targeted to their location. These are justa few examples of peoples' audio enhancement preferences. Further, aperson's audio enhancement preferences are individual and changeregularly depending on the environment and ambient sound.

DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an environment.

FIG. 2 is block diagram of an active acoustic filter.

FIG. 3 is a block diagram of a personal computing device.

FIG. 4 is a functional block diagram of a portion of an active acousticfilter system.

FIG. 5 is a flow chart of a method for setting processing parameters foran active acoustic filter.

FIG. 6 is a flow chart of a method for processing ambient sound.

FIG. 7 is a flow chart of a method for comparing sound profiles.

FIG. 8 is a flow chart of another method for processing ambient sound.

FIG. 9 is a flow chart of another method for processing ambient sound.

Throughout this description, elements appearing in figures are assignedthree-digit reference designators, where the most significant digit isthe figure number where the element is introduced and the two leastsignificant digits are specific to the element. An element not describedin conjunction with a figure has the same characteristics and functionas a previously-described element having the same reference designator.

DETAILED DESCRIPTION

Description of Apparatus

Referring now to FIG. 1, an environment 100 may include a cloud 130 andan active acoustic filter system 140. In this context, the term “cloud”means a network and all devices that may be accessed by the activeacoustic filter system 140 via the network. The cloud 130 may be a localarea network, wide area network, a virtual network, or some other formof network together with all devices connected to the network. The cloud130 may be or include the Internet. The devices within the cloud 130 mayinclude one or more servers 132 and one or more personal computingdevices 134.

The active acoustic filter system 140 includes an active acoustic filter110 and a personal computing device 120. While the personal computingdevice 120 is shown in FIG. 1 as a smart phone, the personal computingdevice 120 may be a smart phone, a desktop computer, a mobile computer,a tablet computer, or any other computing device that is capable ofperforming the processes described herein. The personal computing device120 may include one or more processors and memory configured to executestored software instructions to perform the processes described herein.For example, the personal computing device 120 may run an applicationprogram or “app” to perform the functions described herein. The personalcomputing device 120 may include a user interface comprising a displayand at least one input device such as a touch screen, microphone,keyboard, and/or mouse. The personal computing device 120 may beconfigured to perform geo-location, which is to say to determine its ownlocation. Geo-location may be performed, for example, using a GlobalPositioning System (GPS) receiver or by some other method.

The active acoustic filter 110 may communicate with the personalcomputing device 120 via a first wireless communications link 112. Thefirst wireless communications link 112 may use a limited-range wirelesscommunications protocol such as Bluetooth®, Wi-Fi®, ZigBee®, or someother wireless Personal Area Network (PAN) protocol. The personalcomputing device 120 may communicate with the cloud 130 via a secondcommunications link 122. The second communications link 122 may be awired connection or may be a wireless communications link using, forexample, the WiFi® wireless communications protocol, a mobile telephonedata protocol, or another wireless communications protocol.

Optionally, the active acoustic filter 110 may communicate directly withthe cloud 130 via a third wireless communications link 114. The thirdwireless communications link 114 may be an alternative to, or inaddition to, the first wireless communications link 112. The thirdwireless connection 114 may use, for example, the WiFi® wirelesscommunications protocol, or another wireless communications protocol.

FIG. 2 is block diagram of an active acoustic filter 200. The activeacoustic filter 200 may include a microphone 210, a preamplifier 215, ananalog-to-digital (A/D) converter 220, a wireless interface 225, aprocessor 230, a memory 235, an analog signal by digital-to-analog (D/A)converter 240, and amplifier 245, a speaker 250, and a battery (notshown), all of which may be contained within a housing 290. The housing290 may be configured to interface with a user's ear by fitting in, on,or over the user's ear such that ambient sound is mostly excluded fromreaching the user's ear canal and processed sound generated by theactive acoustic filter is coupled into the user's ear canal. The housing290 may have a first aperture 292 for accepting ambient sound and asecond aperture 294 to allow processed sound to be output into theuser's outer ear canal.

The housing 290 may be, for example, an earbud housing. The term“earbud” means an apparatus configured to fit, at least partially,within and be supported by a user's ear. An earbud housing typically hasa portion that fits within or against the user's outer ear canal. Anearbud housing may have other portions that fit within the concha orpinna of the user's ear.

The microphone 210 converts ambient sound 205 into an electrical signalthat is amplified by preamplifier 215 and converted into digitizedambient sound 222 by A/D converter 220. The digitized ambient sound 222may be processed by processor 230 to provide digitized processed sound232. The processing performed by the processor 230 will be discussed inmore detail subsequently. The digitized processed sound 232 is convertedinto an analog signal by D/A converter 240. The analog signal outputfrom D/A converter 240 is amplified by amplifier 245 and converted intoprocessed output sound 255 by speaker 250.

The depiction in FIG. 2 of the active acoustic filter 200 as a set offunctional blocks or elements does not imply any corresponding physicalseparation or demarcation. All or portions of one or more functionalelements may be located within a common circuit device or module. Any ofthe functional elements may be divided between two or more circuitdevices or modules. For example, all or portions of theanalog-to-digital (A/D) converter 220, the wireless interface 225, theprocessor 230, the memory 235, the analog signal by digital-to-analog(D/A) converter 240, and the amplifier 245 may be contained within acommon signal processor circuit device.

The microphone 210 may be one or more transducers for converting soundinto an electrical signal that is sufficiently compact for use withinthe housing 290.

The preamplifier 215 may be configured to amplify the electrical signaloutput from the microphone 210 to a level compatible with the input ofthe A/D converter 220. The preamplifier 215 may be integrated into theA/D converter 220, which, in turn, may be integrated with the processor230. In the situation where the active acoustic filter 200 contains morethan one microphone, a separate preamplifier may be provided for eachmicrophone.

The A/D converter 220 may digitize the output from preamplifier 215,which is to say convert the output from preamplifier 215 into a seriesof digital ambient sound samples at a rate at least twice the highestfrequency present in the ambient sound. For example, the A/D convertermay output digitized ambient sound 222 in the form of sequential soundsamples at rate of 40 kHz or higher. The resolution of the digitizedambient sound 222 (i.e. the number of bits in each sound sample) may besufficient to minimize or avoid audible sampling noise in the processedoutput sound 255. For example, the A/D converter 220 may outputdigitized ambient sound 222 having 12 bits, 14, bits, or even higherresolution. In the situation where the active acoustic filter 200contains more than one microphone with respective preamplifiers, theoutputs from the preamplifiers may be digitized separately, or theoutputs of some or all of the preamplifiers may be combined prior todigitization.

The wireless interface 225 may provide digital acoustic filter 200 witha connection to one or more wireless networks 295 using a limited-rangewireless communications protocol such as Bluetooth®, Wi-Fi®, ZigBee®, orother wireless personal area network protocol. The wireless interface225 may be used to receive data such as parameters for use by theprocessor 230 in processing the digital ambient sound 222 to produce thedigitized processed sound 232. The wireless interface 225 may be used toexport the digitized processed sound 232, which is to say transmit thedigitized processed sound 232 to a device external to the activeacoustic filter 200. The external device may then, for example, storeand/or publish the digitized processed sound, for example via socialmedia.

The processor 230 may include one or more processor devices such as amicrocontroller, a microprocessor, and/or a digital signal processor.The processor 230 can include and/or be coupled to the memory 235. Thememory 235 may store software programs, which may include an operatingsystem, for execution by the processor 230. The memory 235 may alsostore data for use by the processor 230. The data stored in the memory235 may include, for example, digital sound samples and intermediateresults of processes performed on the digitized ambient sound 222. Thedata stored in the memory 235 may also include a user's listeningpreferences, and/or rules and parameters for applying particularprocesses to convert the digitized ambient sound 222 into the digitizedprocessed sound 232. The memory 235 may include a combination ofread-only memory, flash memory, and static or dynamic random accessmemory.

The D/A converter 240 may convert the digitized processed sound 232 fromthe processor 230 into an analog signal. The processor 230 may outputthe digitized processed sound 232 as a series of samples typically, butnot necessarily, at the same rate as the digitized ambient sound 222 isgenerated by the A/D converter 220. The analog signal output from theD/A converter 240 may be amplified by the amplifier 245 and convertedinto processed output sound 255 by the speaker 250. The amplifier 245may be integrated into the D/A converter 240, which, in turn, may beintegrated with the processor 230. The speaker 250 can be any transducerfor converting an electrical signal into sound that is suitably sizedfor use within the housing 290.

The battery (not shown) may provide power to various elements of theactive acoustic filter 200. The battery may be, for example, a zinc-airbattery, a lithium ion battery, a lithium polymer battery, a nickelcadmium battery, or a battery using some other technology.

FIG. 3 is a block diagram of an exemplary personal computing device 300.As shown in FIG. 3, the personal computing device 300 includes aprocessor 310, memory 320, a user interface 330, and a communicationsinterface 340. Some of these elements may or may not be present,depending on the implementation. Further, although these elements areshown independently of one another, each may, in some cases, beintegrated into another.

The processor 310 may be or include one or more microprocessors,microcontrollers, digital signal processors, application specificintegrated circuits (ASICs), or a system-on-a-chip (SOCs). The memory320 may include a combination of volatile and/or non-volatile memoryincluding read-only memory (ROM), static, dynamic, and/ormagnetoresistive random access memory (SRAM, DRM, MRAM, respectively),and nonvolatile writable memory such as flash memory.

The communications interface 340 includes at least one interface forwireless communications with external devices. The communicationsinterface 340 may include one or more of a cellular telephone networkinterface 342, a wireless Local Area Network (LAN) interface 344, and/ora wireless PAN interface 336. The cellular telephone network interface342 may use one or more of the known 2G, 3G, and 4G cellular dataprotocols. The wireless LAN interface 344 may use the WiFi® wirelesscommunications protocol or another wireless local area network protocol.The wireless PAN interface 346 may use a limited-range wirelesscommunications protocol such as Bluetooth®, Wi-Fi®, ZigBee®, or someother wireless personal area network protocol. When the personalcomputing device is deployed as part of an active acoustic filtersystem, such as the active acoustic filter system 140, the wireless PANinterface 346 may be used to communicate with one or more activeacoustic filter device 110. The cellular telephone network interface 342and/or the wireless LAN interface 344 may be used to communicate withthe cloud 130.

The communications interface 340 may include radio-frequency circuits,analog circuits, digital circuits, one or more antennas, and otherhardware, firmware, and software necessary for communicating withexternal devices. The communications interface 340 may include one ormore processors to perform functions such as coding/decoding,compression/decompression, and encryption/decryption as necessary forcommunicating with external devices using selected communicationsprotocols. The communications interface 340 may rely on the processor310 to perform some or all of these function in whole or in part.

The memory 320 may store software programs and routines for execution bythe processor. These stored software programs may include an operatingsystem such as the Apple® or Android® operating systems. The operatingsystem may include functions to support the communications interface340, such as protocol stacks, coding/decoding,compression/decompression, and encryption/decryption. The storedsoftware programs may include an application or “app” to cause thepersonal computing device to perform portions of the processes andfunctions described herein.

The user interface 330 may include a display and one or more inputdevices including a touch screen.

FIG. 4 shows a functional block diagram of a portion of an exemplaryactive acoustic filter system 400, which may be the active acousticfilter system 140. Digitized ambient sound may be received, for example,from an A/D converter such as the A/D converter 220. The digitizedambient sound is processed by an audio processing function 410implemented by a processor such as the processor 230. The processorperforming the audio processing function may include one or moreprocessor devices such as a microcontroller, a microprocessor, and/or adigital signal processor. The audio processing function 410 may includefiltering, equalization, compression, limiting, and other processes.Filtering may include high-pass, low-pass, band-pass, and band-rejectfiltering. Equalization may include dividing the ambient sound into aplurality of frequency bands and subjecting each of the bands to arespective attenuation or gain. Equalization may be combined withfiltering, such as a narrow band-reject filter to suppress a particularobjectionable component of the ambient sound. Compression may be used toalter the dynamic range of the ambient sound such that louder sounds areattenuated more than softer sounds. Compression may be combined withfiltering or with equalization such that louder frequency bands areattenuated more than softer frequency bands. Limiting may be used toattenuate louder sounds to a predetermined loudness level withoutattenuating softer sounds. Limiting may be combined with filtering orwith equalization such that louder frequency bands are attenuated to adefined level while softer frequency bands are not attenuated orattenuated by a smaller amount. Techniques for implementing filters,compressors, and limiters are known to those of skill in the art ofdigital signal processing.

The audio processing function 410 may also include adding echo orreverberation to the ambient sound and/or detecting and cancelling anecho in the ambient sound. The audio processing function 410 may furtherinclude noise reduction processing. Techniques to add or suppress echo,to add reverberation, and to reduce noise are known to those of skill inthe art of digital signal processing. The audio processing function 410may include music effects such as chorus, pitch shifting, flanging,and/or “vinyl” emulation (adding scratches and pops to emulation vinylrecords). Techniques to add these music effects are known to those ofskill in the art of digital signal processing.

The audio processing function 410 may be performed in accordance withprocessing parameters 425. The processing parameters 425 may define thetype and degree of one or more processes to be performed on thedigitized ambient sound. For example, the processing parameters 425 maydefine filtering by a low pass filter with a particular cut-offfrequency (the frequency at which the filter start to attenuate) andslope (the rate of change of attenuation with frequency) and/orcompression using a particular function (e.g. logarithmic). For furtherexample, the processing parameters 425 may define the plurality offrequency bands for equalization and provide a respective attenuation orgain for each frequency band. In yet another example, the processingparameters 425 may define a delay time and relative amplitude of an echoto be added to the digitized ambient sound. The number and format of theprocessing parameters 425 may vary depending on the type of processingto be performed.

The audio processing function 410 may be defined, in part, based onanalysis of the ambient sound by an analysis function 420, which may beimplemented by the same processor, or a different processor, as theaudio processing function 410. The analysis function 420 may analyze thedigitized ambient sound to determine, for example, an overall (i.e.across the entire audible frequency spectrum) loudness level or theloudness level within particular frequency bands. For further example,the analysis function 420 may transform the digitized ambient soundand/or the digitized sound output from the processing function 420 intothe frequency domain using, for example, a windowed Fourier transform.The transformed sound may then be analyzed to determine the distributionof the ambient sound within the audible frequency spectrum and/or todetect the presence of dominant sounds at particular frequencies. Theanalysis function 420 may perform other analysis to determine othercharacteristics of the digitized ambient sound.

All or a portion of the processing parameters 425 for the audioprocessing function 410 may define processes dependent on the analysisof the ambient sound. For example, a first processing parameter mayrequire that the overall loudness of the processed sound output from theactive acoustic filter system 400 be less than a predetermined value.The analysis function 420 may determine the overall loudness of theambient sound and the audio processing function 410 may than provide anappropriate amount of overall attenuation. For a specific example, ifthe overall loudness of the ambient sound is 100 phon and the processingparameter requires to the output sound to be no greater than 60 phon,the audio processing function 410 may cause an overall perceptualattenuation of 40 dB. However, if the overall loudness of the ambientsound is only 40 phon, the audio processing function 410 may provide nooverall attenuation. For another example, a user in a dance club maywant bass frequencies (the lowest frequency portion of the audiblespectrum) to be louder than any other portion of the audible frequencyspectrum. In another situation, for example on an airplane, the sameuser may want bass frequencies to be suppressed relative to themid-range frequencies of human speech. For further example, in thesituation where the analysis function 420 detects a dominant narrow-bandsound (e.g. a microphone feed-back squeal), the audio processingfunction 410 may provide a narrow-band band-reject filter at thecorresponding frequency. In all of these examples, the audio processingfunction 410 may need to adapt to the characteristics of the ambientsound as determined by the analysis function 420.

The processing parameters 425 that define the processes performed in theaudio processing function 410 may be received or retrieved from severalsources. The processing parameters 425 may be received from a user ofthe active acoustic filter system 400. The user may manually enterprocessing parameters via a user interface 480, which may be the userinterface of a personal computing device such as the personal computingdevice 120. Alternatively, a microphone accessible to the audioprocessing function 410 (such as mic 210) or a microphone in portablecomputing device 300 (not shown) may provide input that is used inconjunction with the audio processing function 410 and other processingparameters 425 to adjust the active acoustic filter system 400.

The processing parameters 425 may be received from a device or devicesavailable via a computer network or otherwise available within thecloud. For example, a website accessible via the cloud may listrecommended sets of processing parameters for different venues, bands,sporting events, and the like. These processing parameters 425 may beprovided by an owner or operator of a venue or by an artist performingat the venue. A social media application may survey users of activeacoustic filters at a particular venue or event to develop acrowd-consensus set of processing parameters for that venue or event.

The processing parameters 425 may be location-based, which is to say theprocessing parameters may be associated with a current location of theactive acoustic filter system 400. The current location may be aspecific location (e.g. “user's living room”, “user's office”, “FenwayPark”, “Chicago O'Hare Airport”, etc.) or a generic location (e.g.“sporting event”, “dance club”, “concert”, “airplane”, etc.). Alocation-based parameter memory 430 may store one or more sets oflocation-based processing parameters in association with data definingrespective locations. The appropriate processing parameters may beretrieved from location-based parameter memory 430 based on locationdata 435 identifying the current location of the active acoustic filtersystem 400. The location data 435 may be provided by a geo-locationfunction 440. The geo-location function may use GPS, cell tower signalstrength, or some other technique for identifying the current location.The location data 435 may be provided by the user via the user interface480. For example, the user may select a location from a list oflocations for which processing parameters are stored in thelocation-based parameter memory 430. The location data 435, particularlyfor a generic location, may be retrieved from a cloud external to theactive acoustic filter system 400. The location data 435 may obtained bysome other technique.

The one or more sets of location-based processing parameters may havebeen stored in the location-based parameter memory 430 during priorvisits to the corresponding locations. For example, the user of theactive acoustic filter system 400 may manually set processing parametersfor their home and save the processing parameters in the location-basedparameter memory 430 in association with the location “home”. Similarly,the user may set and save processing parameters for other locations(e.g. “work”, “concert”, “airplane”, etc.). Upon returning to theselocations, the corresponding processing parameters may be automaticallyretrieved from the location-based parameter memory 430.

The processing parameters 425 may be ambient-based, which is to say theprocessing parameters may be associated with particular characteristicsof the ambient sound. The active acoustic filter system 400 may “listen”to the ambient sound and learn what filter parameters the user sets inthe presence of various ambient sound characteristics. Once the user'slistening preferences have been learned, the active acoustic filter mayselect or suggest processing parameters 425 appropriate for thecharacteristics of the current ambient sound.

For example, an ambient-based parameter memory 460 may store one or moresound “profiles” with respective sets of ambient-based processingparameters previously defined by the user for use with that ambientsound profile. Each stored sound profile may include characteristicssuch as, for example, an overall loudness level, the normalized orabsolute loudness of predetermined frequency bands, the spectral envelopshape, spectrographic features such as rising or falling pitch, thepresence and normalized or absolute loudness of dominant narrow-bandsounds, the presence or absence of odd and/or even harmonics, thepresence and normalized or absolute loudness of noise, low frequencyperiodicity (e.g. the “beat” when the ambient sound includes music), andother characteristics. An ambient sound characterization function 450,which may work in conjunction with or in parallel to the analysisfunction 420, may develop a profile of the current ambient sound. Theprofile determined by the ambient sound characterization function 450may be used to retrieve appropriate ambient-based processing parametersfrom the ambient-based processing parameter memory 460.

The one or more sets of ambient-based processing parameters may havebeen stored in the ambient-based parameter memory 460 during priorexposure to ambient sound having particular profiles. For example, theuser of the active acoustic filter system 400 may manually setprocessing parameters 425 during a visit to a dance club. Theseprocessing parameters may be saved in the ambient-based parameter memory430 in association with the profile of the ambient sound in the danceclub. The processing parameters 425 may be saved in the ambient-basedparameter memory 430 in response to a user action, or may beautomatically “learned” by the active acoustic filter system 400. Uponreturning to the same or a different dance club, the appropriateambient-based processing parameters may be automatically retrieved fromthe ambient-based parameter memory 460.

While FIG. 4 depicts the ambient-based parameter memory 460 and thelocation-based parameter memory 430 separately, these may be a commonmemory that associates each stored set of processing parameters with alocation, with an ambient sound profile, or both. Thus, one or both ofambient-based parameters and location-based parameters may be taken intoaccount when selecting or suggesting processing parameters 425 for aactive acoustic filter system 400.

Optionally, an adder 470 may add a secondary audio feed to the outputfrom the audio processing function 410 to produce the digitizedprocessed sound. The secondary audio feed may be received by the activeacoustic filter system 400 from an external source via a wirelesscommunications link. For example, a user at a sporting event may receivea secondary audio feed of a sportscaster describing the event, whichwould then be superimposed on the processed ambient sound of the eventitself.

The depiction in FIG. 4 of the active acoustic filter system 400 as aset of functional blocks or elements does not imply any correspondingphysical separation or demarcation. All or portions of one or morefunctional elements may be located within a common circuit device ormodule. Any of the functional elements may be divided between two ormore circuit devices or modules. For example, all or portions of theaudio processing function 410, the analysis function 420, and the adder470 may be implemented within an active acoustic filter packaged withinan earbud or other housing configured to interface with a user's ear.The ambient sound characterization function 450, the ambient-basedparameter memory 460 and the location-based parameter memory 430 may bedistributed between the active acoustic filter and a personal computingdevice coupled to the active acoustic filter by a wirelesscommunications link.

Description of Processes

Referring now to FIG. 5, a process for setting processing parameters foran active acoustic filter, such as the active acoustic filter 200,begins at 505 and ends at 595. The process 500 may be initiated by auser, or may be initiated automatically in recognition of a significantchange in the characteristics of the ambient sound. At 510, the ambientsound may be characterized to determine an ambient sound profile. Theambient sound profile may include characteristics such as overallloudness, normalized or absolute loudness of predetermined frequencybands, the presence of dominant narrow-band sounds or random noise,and/or other characteristics.

At 520, a determination may be made whether or not ambient-basedprocessing parameters (ABPP) are available for ambient sound having aprofile that is the same or reasonably similar to the profile determinedat 510. “Ambient-based” processing parameters are sets of processingparameters tailored for specific ambient sound characteristics. Forexample, a memory may store sound profiles for one or more environmentsin association with respective sets of ambient-based processingparameters. At 520, the profile determined at 510 may be compared withthe sound profiles stored in the memory to determine if the memory holdsa stored sound profile that “matches” (e.g. is the same as, or areasonably similar to) the ambient sound profile determined at 510.

When a determination is made at 520 that the memory holds a stored soundprofile that “matches” (e.g. is the same as, or a reasonably similar to)the ambient sound profile determined at 510 (“yes” at 520), theappropriate ambient-based processing parameters associated with thematching stored sound profile may be retrieved at 530.

After retrieving ambient-based processing parameters for the currentambient sound at 530, the process 500 may end at 595. Note that, whilethe process 500 for setting processing parameters has ended, the use ofthe ambient-based processing parameters may continue. Specifically, theambient-based processing parameters may be used to process digitizedambient sound at 540, including adding a secondary audio feed ifavailable at 560.

When a determination is made at 520 that the memory does not hold astored sound profile that “matches” (e.g. is the same as, or areasonably similar to) the ambient sound profile determined at 510 (“No”at 520), the user may set processing parameters for the active acousticfilter at 560. For example, a graphical user interface may be providedon a display of the user's personal computing device to allow the userto enter processing parameters. Alternatively or additionally, thegraphical user interface may allow the user to select previously storedor predetermined set of processing parameters from a list or menu. Afurther graphical user interface may be provided to allow the user toedit a selected set of processing parameters.

At 570, the processing parameters set at 560 may be stored asambient-based processing parameters in association with the ambientsound profile determined at 510. Storing the ambient-based processingparameters and associated sound profile at 570 may be automatic, or maybe optional and initiated by a user action. The ambient-based processingparameters may be stored within the active acoustic filter, within theuser's personal computing device, and/or on the cloud.

After ambient-based processing parameters for the current ambient soundcharacteristics have been set at 560 and optionally stored at 570, theprocess 500 may end at 595. The use of the ambient-based processingparameters may continue at 540 and 550 as previously described.

Referring now to FIG. 6, a process 600 for processing ambient soundusing an active acoustic filter system, such as the active acousticfilter system 140, begins at 605 and may run continuously until stoppedby a user action (not shown). The process 600 may be initiated by auser, or may be initiated automatically at regular intervals or inrecognition of a significant change in the characteristics of theambient sound. At 610, the ambient sound may be characterized todetermine an ambient sound profile. The ambient sound profile mayinclude characteristics such as an overall loudness level, normalized orabsolute acoustic power within predetermined frequency bands, normalizedor absolute power level of dominant narrow-band sounds and/or randomnoise, beat or onset frequency (when the ambient sound includes music),and/or other characteristics.

At 615, the ambient sound profile from 610 may be compared to one ormore sound profiles stored within the action acoustic filter system 140.The stored sound profiles may be stored within an active acousticfilter, within a personal computing device, and/or within a cloud, whichmay be the active acoustic filter 110, the personal computing device120, and the cloud 130 of FIG. 1, respectively. Each of the stored soundprofiles may be associated with a corresponding set of ambient-basedprocessing parameters.

At 620, a determination may be made whether or not the ambient soundprofile from 610 matches one of the stored sound profiles. In thiscontext, the term “matches” means “is the same as within predeterminedlimits” using one or more similarity metrics and comparison criteria.

An exemplary method for determining whether or not the ambient soundprofile matches a stored sound profile is shown in FIG. 7. The process700 may begin after an ambient sound profile is computed at 610 in theprocess 600. At 710, a first one of one or more stored sound profilesmay be retrieved from memory. Each of the one or more stored soundprofiles may be stored in a memory is association with a set ofprocessing parameters. A similarity metric between the ambient soundprofile and the retrieved sound profile may be calculated at 720.

For example, the ambient sound profile and each of the stored soundprofiles may consist of an ordered set of n numbers (where n is apositive integer) representing various parameters of the sound aspreviously described (e.g. overall loudness level, normalized orabsolute acoustic power within predetermined frequency bands, normalizedor absolute power level of dominant narrow-band sounds and/or randomnoise, beat or onset frequency, etc.). Thus the ambient sound profileand each stored sound profile may be considered as vectors in ann-dimensional space. The similarity metric used for comparison of theambient sound profile and a stored sound profile may then be theEuclidean distance between the corresponding vectors. Other similaritymetrics that may be used at 720 instead of, or in addition to, Euclideandistance include a radial basis function between the vectors, spectralor spectrographic comparisons, and other similarity metrics known tothose of skill in the art.

At 730, a determination may be made if the similarity metric calculatedat 720 indicates that the ambient sound profile and the stored soundprofile “match” according to a predetermined criteria. For example,assuming a similarity metric such as Euclidean distance where a lowervalue indicates greater similarity, the determination at 730 may bewhether or not the similarity metric is less than or equal to apredetermined threshold. For a similarity metric where a high valueindicates greater similarity, the determination at 730 may be whether ornot the similarity metric is greater than or equal to a predeterminedthreshold. When the ambient sound profile and stored sound profile match(“Yes” at 730), the process 700 may return a “Yes” answer at 620 in theprocess 600.

When a determination is made at 730 that the ambient sound profile andthe stored sound profile do not match according to the predeterminedcriteria (“No” at 730), a further determination may be made ifadditional stored sound profiles are available for comparison. Whenthere are more stored sound profiles (“Yes” at 740), a next stored soundprofile may be retrieved at 740 and the process 700 may repeat until amatch is found at 730 or all of the stored sound profiles have beencompared to the ambient sound profile. When all of the stored soundprofiles have been compared to the ambient sound profile without findinga match (“No” at 740), the process 700 may return a “No” answer at 620in the process 600.

Referring back to FIG. 6, when the ambient sound profile from 610matches one of the stored sound profiles (“yes” at 620), theambient-based processing parameters associated with the matching storedsound profile may be retrieved at 625 and used to process the digitizedambient sound at 630. Optionally, a secondary audio feed may be added tothe processed ambient sound at 635.

At 640, a determination may be made whether or not the currentprocessing parameters (i.e. the processing parameters currently in use)will be edited. Editing may be requested by a user via a user interfaceon a personal computing device. When editing is requested (“yes” at640), the user may edit the current processing parameters or enter newprocessing parameters at 650. Editing may be done, for example, via agraphical user interface on the personal computing device. The editedprocessing parameters may then be used to process the ambient sound at630.

When editing is not requested (“no” at 640), a determination may be madeat 645 whether or not the ambient sound is still the same as, orreasonably similar to, the ambient sound when the process 600 wasstarted at 605. When the ambient sound is the same (“yes” at 645), theprocess 600 returns to 630. When the ambient sound has changed (“no” at645) the process 600 may return to the start at 605. While the actionsat 630, 635, 640 and 645 are shown as sequential steps for ease ofdiscussion, these actions may be performed concurrently and continuouslyuntil a determination is made at 640 to edit the processing parametersor a determination is made at 645 to restart the process.

The determination at 645 may be solely a user decision. In this case thedefault decision at 645 is “Yes” (the ambient is the same) unless theuser provides an input via the personal computing device to indicate theambient has changed.

The active acoustic filter system may be enabled to may an automaticdetermination at 645. In this case, the active acoustic filter systemmay continuously or periodically create a profile of the current ambientsound and compare the current ambient sound profile to the originalambient sound profile created at 610. For example, the comparison at 645may be made using the same similarity metric and criteria used at 615and 620. To avoid repeated switching between sets of processingparameters, the process 600 may be restarted at 605 only if the currentand original ambient sound profiles are found to be substantiallydifferent for longer than a predetermined time period. When an automaticdetermination at 645 is enabled, the user may have an option to manuallyprovide an input via the personal computing device to indicate theambient has changed.

The current processing parameters may optionally be stored in memory inassociation with the current ambient sound profile at 690. The currentprocessing parameters and ambient sound profile may be storedautomatically each time the user enters new processing parameters at650. Automatic storage of new processing parameters allows the activeacoustic filter system to “learn” and subsequently reuse the user'sprocessing preferences. Alternatively or additionally, the user mayenter a “store command” via the personal computing to device to causethe current processing parameters and ambient sound profile to be storedat 690. The user may have the option to enter the store command onlyafter editing or entering processing parameters at 650. The user mayhave the option to enter the store command at any time during theprocess 600.

Referring now to FIG. 8, another process 800 for processing ambientsound using an active acoustic filter system, such as the activeacoustic filter system 140, begins at 805 and may run continuously untilstopped by a user action (not shown). The process 800 may be initiatedby a user, or may be initiated automatically in recognition of asignificant change in the characteristics of the ambient sound. Elementsof the process 800 with reference designators from 610 to 690 werepreviously described in conjunction with FIG. 6. Descriptions of theseelements will not be repeated.

At 815, an ambient sound profile created at 610 may be compared to allof one or more sound profiles stored within the active acoustic filtersystem. The stored sound profiles may be stored within an activeacoustic filter, within a personal computing device, and/or within acloud, which may be the active acoustic filter 110, the personalcomputing device 120, and the cloud 130 of FIG. 1, respectively. Each ofthe stored sound profiles may be associated with a corresponding set ofambient-based processing parameters. The comparisons may be performedusing a similarity metric as previously described. A determination maythen be made which of the one or more stored sound profiles is closestto the ambient sound profile. For example, in the case where similaritymetric is Euclidean distance, the smallest Euclidean distance indicatesthe “closest” stored sound profile. Note that the closest stored soundprofile may not necessarily “match” the ambient sound profile using anypredetermined criteria.

The ambient-based processing parameters associated with the closeststored sound profile may be retrieved at 825 and used to process thedigitized ambient sound at 630. The process 800 may continue aspreviously described in conjunction with FIG. 6.

Referring now to FIG. 9, another process 900 for processing ambientsound using an active acoustic filter system, such as the activeacoustic filter system 140, begins at 905 and runs continuously untilstopped by a user action (not shown). The process 900 may be initiatedby a user, or may be initiated automatically in recognition of asignificant change in the characteristics of the ambient sound. Elementsof the process 900 with reference designators from 610 to 690 werepreviously described in conjunction with FIG. 6. Elements of the process900 with reference designators 815 and 825 were previously described inconjunction with FIG. 8. Descriptions of these elements will not berepeated.

At 815, an ambient sound profile created at 610 may be compared to allof one or more sound profiles stored within the active acoustic filtersystem as previously described. At 620, a determination may be made ifone or more of the stored sound profiles match the ambient sound profilefrom 610 according to a predetermined criterion. If one or more of thestored sound profiles match the ambient sound profile (“yes” at 620),the ambient-based processing parameters associated with thebest-matching stored sound profile may be retrieved at 925 and used toprocess digitized ambient sound at 630. The process 900 may continue aspreviously described in conjunction with FIG. 6.

If none of the stored sound profiles matches the ambient sound profile(“no” at 620), the user may be provided with an option at 955 to eitherretrieve the processing parameters associated with the closest storedsound profile at 825 or to enter new processing parameters at 650. Ineither case, the retrieved or enter processing parameters are then usedto process ambient sound at 630. The process 900 may continue aspreviously described in conjunction with FIG. 6.

Closing Comments

Throughout this description, the embodiments and examples shown shouldbe considered as exemplars, rather than limitations on the apparatus andprocedures disclosed or claimed. Although many of the examples presentedherein involve specific combinations of method acts or system elements,it should be understood that those acts and those elements may becombined in other ways to accomplish the same objectives. With regard toflowcharts, additional and fewer steps may be taken, and the steps asshown may be combined or further refined to achieve the methodsdescribed herein. Acts, elements and features discussed only inconnection with one embodiment are not intended to be excluded from asimilar role in other embodiments.

As used herein, “plurality” means two or more. As used herein, a “set”of items may include one or more of such items. As used herein, whetherin the written description or the claims, the terms “comprising”,“including”, “carrying”, “having”, “containing”, “involving”, and thelike are to be understood to be open-ended, i.e., to mean including butnot limited to. Only the transitional phrases “consisting of” and“consisting essentially of”, respectively, are closed or semi-closedtransitional phrases with respect to claims. Use of ordinal terms suchas “first”, “second”, “third”, etc., in the claims to modify a claimelement does not by itself connote any priority, precedence, or order ofone claim element over another or the temporal order in which acts of amethod are performed, but are used merely as labels to distinguish oneclaim element having a certain name from another element having a samename (but for use of the ordinal term) to distinguish the claimelements. As used herein, “and/or” means that the listed items arealternatives, but the alternatives also include any combination of thelisted items.

1. An active acoustic filter system, comprising: a housing; an activeacoustic filter configured to convert ambient sound into digitizedambient sound, wherein the active acoustic filter comprises amicrophone, a preamplifier, an analog to digital converter, a digital toanalog converter, an amplifier, and a speaker that are disposed withinthe housing; a memory storing one or more stored sound profiles and arespective set of processing parameters associated with each of the oneor more stored sound profiles; one or more processors, at least one ofthe one or more processors being enclosed by the housing and configuredfor communication with the memory, the at least one of the one or moreprocessors being configured to: analyze the digitized ambient sound tocreate an ambient sound profile; determine whether or not the ambientsound profile matches one of the one or more stored sound profiles; andwhen the one or more processors determines that the ambient soundprofile does not match one of the one or more stored sound profiles,provide a user prompt either to establish one or more processingparameters or to retrieve processing parameters associated with aclosest stored sound profile; receive one or more user-establishedprocessing parameters; generate digitized processed sound by processingthe digitized ambient sound in accordance with the one or moreuser-established processing parameters that adjust one or more decibellevels associated with frequency ranges of the digitized ambient sound,wherein the active acoustic filter is configured to convert thedigitized processed sound into processed output sound.
 2. The activeacoustic filter system of claim 1, wherein the processor is configuredto determine whether or not the ambient sound profile matches one ormore of the stored sound profiles by calculating a similarity metricbetween the ambient sound profile and the stored sound profile.
 3. Theactive acoustic filter system of claim 2, wherein each of the one ormore stored sound profiles and the ambient sound profile is expressed asan n-dimensional vector, where n is a integer greater than one, and thesimilarity metric is an Euclidean distance between the respectivevectors.
 4. The active acoustic filter system of claim 1, wherein, whenthe ambient sound profile matches one of the one or more stored soundprofiles, the at least one of the one or more processors is configuredto: retrieve the set of processing parameters associated with the storedsound profile that matches the ambient sound profile, and generatedigitized processed sound by processing the digitized ambient sound inaccordance with the set of processing parameters retrieved from thememory.
 5. (canceled)
 6. The active acoustic filter system of claim 1,wherein the housing is an earbud housing configured to fit, at leastpartially, within and be supported by a user's ear.
 7. The activeacoustic filter system of claim 1, wherein the memory is disposed withinthe housing.
 8. The active acoustic filter system of claim 1, furthercomprising a personal computing device coupled to the processor via awireless communications link.
 9. The active acoustic filter system ofclaim 1, wherein processing the digitized ambient sound includes one ormore of amplification, attenuation, equalization, reverberation, andnoise suppression.
 10. The active acoustic filter system of claim 1,wherein each set of processing parameters includes parameters to causethe processor to perform one or more of amplification, attenuation,equalization, reverberation, and noise suppression.
 11. The activeacoustic filter system of claim 1, wherein the ambient sound profilecomprises a plurality of n characteristics and is represented as avector of the plurality of n characteristics, wherein each of theplurality of n characteristics is a different type of characteristic ofambient sound experienced by the active acoustic filter system.
 12. Theactive acoustic filter system of claim 11, wherein the plurality of ncharacteristics include two or more of an overall loudness level,normalized acoustic power within predetermined frequency bands, absoluteacoustic power within predetermined frequency bands, normalized and/orabsolute power level of dominant narrow-band sounds and/or random noise,beat frequency, or onset frequency.
 13. A method, comprising: convertingambient sound into digitized ambient sound; storing, in a memory, one ormore stored sound profiles and a respective set of processing parametersassociated with each of the one or more stored sound profiles; analyzingthe digitized ambient sound to create an ambient sound profile;determining whether or not the ambient sound profile matches one of theone or more stored sound profiles; and when the ambient sound profiledoes not match one of the one or more stored sound profiles: providing auser prompt either to establish one or more processing parameters or toretrieving processing parameters associated with a closest stored soundprofile; receive one or more user-established processing parameters;generating, by the processor, the digitized processed sound byprocessing the digitized ambient sound in accordance with the one ormore user-established processing parameters that adjust one or moredecibel levels associated with frequency ranges of the digitized ambientsound; and convert the digitized processed sound into processed outputsound.
 14. The method of claim 13, wherein determining whether or notthe ambient sound profile matches one of the one or more stored soundprofiles comprises calculating a similarity metric between the ambientsound profile and the stored sound profile.
 15. The method of claim 14,wherein each of the one or more stored sound profiles and the ambientsound profiles is expressed as an n-dimensional vector, where n is ainteger greater than one, and the similarity metric is an Euclideandistance between the respective vectors.
 16. The method of claim 13,wherein the processing is performed by a processor housed in a housingconfigured to fit, at least partially, within and be supported by auser's ear.
 17. The method of claim 16, wherein the memory is disposedwithin the housing.
 18. The method of claim 13, wherein processing thedigitized ambient sound further comprises one or more of amplifying,attenuating, equalizing, reverberating, and noise suppressing.
 19. Themethod of claim 13, wherein each set of processing parameters includesparameters for one or more of amplifying, attenuating, equalizing,reverberating, and noise suppressing.
 20. A computer program product,the computer program product being embodied in a tangible non-transitorycomputer readable storage medium and comprising computer instructionsfor: converting ambient sound into digitized ambient sound; storing, ina memory, one or more stored sound profiles and a respective set ofprocessing parameters associated with each of the one or more storedsound profiles; analyzing the digitized ambient sound to create anambient sound profile; determining whether or not the ambient soundprofile matches one of the one or more stored sound profiles; and whenthe ambient sound profile does not match one of the one or more storedsound profiles: providing a user prompt either to establish one or moreprocessing parameters or to retrieving processing parameters associatedwith a closest stored sound profile; receive one or moreuser-established processing parameters; generating, by the processor,the digitized processed sound by processing the digitized ambient soundin accordance with the one or more user-established processingparameters that adjust one or more decibel levels associated withfrequency ranges of the digitized ambient sound; and convert thedigitized processed sound into processed output sound.
 21. The activeacoustic filter system of claim 1, wherein at least one of the one ormore processors is configured to: receive user input indicating arequest to retrieve processing parameters associated with the closeststored sound profile; retrieve the processing parameters associated withthe closest stored sound profile; and process the digitized ambientsound in accordance with the processing parameters associated with theclosest stored sound profile.